# -*- coding: utf-8 -*-
"""
Created on Fri Jul 21 07:16:02 2023

@author: skunk69
"""

import json

chinese_name = '生活事件量表'
english_name = 'Life Event Scale'
abbreviation = 'LES'
category = u'应激及相关行为量表'

outline = u"""生活事件是指个体生活中那些迫使人们改变现成行为方式的主要变化，如结婚、得子、居丧、解职、亲朋好友的去世、经济状况的改变等。生活事件量表（Life Event Scale，LES）由杨德森、张亚林于1986年编制。该量表是在20世纪80年代初引进的社会重新适应量表（SRRS）基础上根据我国实际情况修订而成，强调个体对生活事件的主观感受。作者认为，只有个体实际感受到的紧张焦虑等情绪反应才对身体产生影响，并且把生活事件分为正性（积极的）和负性（消极的），认为负性事件才与疾病相关。"""

instruction = u"""下面是每个人都有可能遇到的一些日常生活事件，究竟是好事还是坏事，可根据个人情况自行判断。这些事件可能对个人有精神上的影响（体验为紧张、压力、兴奋或苦恼等），影响的轻重程度是各不相同的，影响的持续时间也不一样。请你根据自己的实际情况，实事求是地回答下列问题。"""

with open('LES.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

L1 = list(range(1,29))
L2 = list(range(29,42))
L3 = list(range(42,49))
L4 = list(range(49,51))

items = {}
lines_items = lines[1:L1[-1]+1]+lines[L2[0]+1:L2[-1]+2]+\
    lines[L3[0]+2:L4[0]+2]+lines[L4[0]+3::]
    
for line in lines_items:
    key,value = line.strip().split('.',maxsplit=1)
    items[key] = value.strip()

scales = [lines[0].strip(),lines[L2[0]].strip(),lines[L3[0]+1].strip(),
         lines[L4[0]+2].strip()]
scales_items = [L1,L2,L3,L4]

title_items = u'生活事件名称'
title_time_rating = u'事件发生时间'
time_rating = [u'未发生',u'一年前',u'一年内',u'长期性']
title_characteristics_rating = u'性质'
characteristics_rating = [u'好事',u'坏事']
title_level_influence_rating = u'精神影响程度'
level_influence_rating = [u'无影响',u'轻度',u'中度',u'重度',u'极重']
title_duration_rating = u'影响持续时间'
duration_rating = [u'三个月内',u'半年内',u'一年内',u'一年以上']
duration_score_rules = list(range(1,5))
level_influence_score_rules = list(range(0,5))

implementation = u"""LES属自评量表，填写者须仔细阅读和领会指导语，然后逐条一一过目。根据调查者的要求，填写者首先将某一段时间范围内（通常为一年）的事件记录下来。有的事件虽然发生在该时间范围之前，如果影响深远并延续至今，可作为长期性事件记录。然后，由填写者根据自身的实际感受而不是按常理或伦理道德观念去判断那些经历过的事件对本人来说是好事还是坏事？影响程度如何？影响持续的时间有多久？对于量表上已经列出但并未经历的事件应一一注明“未发生”，不留空白，以防遗漏。"""

reliability = u"""对正常人、患者样本的重测相关系数为0.742~0.611，P<0.01。"""
validity = u"""对离婚诉讼者、各种疾病（十二指肠溃疡、恶性肿瘤、癔症）患者样本与相应对照样本的精神紧张总值、负性事件值分析表明，差异显著。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""一过性的事件，如流产、失窃要记录发生次数，长期性事件如住房拥挤、夫妻分居等不到半年记为1次，超过半年记为2次。影响程度分为5级，无影响=0分、轻度=1分、中度=2分、重度=3分、极重=4分，影响持续时间分三月内、半年内、一年内、一年以上共4个等级，分别记1、2、3、4分。
生活事件刺激量的计算方法如下：
1、某事件刺激量=该事件影响程度分x该事件持续时间分x该事件发生次数
2、正性事件刺激量=全部好事刺激量之和
3、负性事件刺激量=全部坏事刺激量之和
4、生活事件总刺激量=正性事件刺激量+负性事件刺激量
另外，还可以根据研究需要，按家庭问题、上作学习间题和社交问题进行分类统计。"""

applications = u"""LES总分越高反映个体承受的精神压力越大。95%的正常人1年内LES总分不超过20分，99%不超过32分。负性生活事件的分值越高对身心健康的影响越大，正性生活事件分值的意义尚待进一步研究。
LES适用于16岁以上的正常人、神经症、身心疾病、各种躯体疾病求助者以及自知力恢复的重性精神病求助者，主要应用领域：（1）神经症、身心疾病、各种躯体疾病及重性精神疾病的病因学研究；（2）指导心理治疗、危机干预，使心理治疗和医疗干预更有针对性；（3）甄别高危人群，预防精神疾病和身心疾病，对LES高分者加强预防工作；（4）指导正常人了解自己的精神负荷、维护身心健康，提高生活质量。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':{
        'instruction':instruction,
        'items':items,
        'title_items':title_items,
        'title_time_rating':title_time_rating,
        'time_rating':time_rating,
        'title_characteristics_rating':title_characteristics_rating,
        'characteristics_rating':characteristics_rating,
        'title_level_influence_rating':title_level_influence_rating,
        'level_influence_rating':level_influence_rating,
        'title_duration_rating':title_duration_rating,
        'duration_rating':duration_rating,
        'duration_score_rules':duration_score_rules,
        'level_influence_score_rules':level_influence_score_rules,        
        'scales':scales,
        'scales_items':scales_items      
                },
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)